Kubernetes Cluster এ Docker Container Deploy করা

Latest Technologies - ডকার (Docker) - প্র্যাকটিস প্রোজেক্টস | NCTB BOOK

Kubernetes ক্লাস্টারে Docker কন্টেইনার ডিপ্লয় করা একটি সাধারণ এবং কার্যকরী প্রক্রিয়া। এটি আপনার কন্টেইনারাইজড অ্যাপ্লিকেশনগুলিকে স্কেল, ম্যানেজ এবং অর্কেস্ট্রেট করতে সহায়তা করে। নিচে এই প্রক্রিয়াটি ধাপে ধাপে ব্যাখ্যা করা হলো।

১. Kubernetes ক্লাস্টার প্রস্তুত করা

প্রথমত, নিশ্চিত করুন যে আপনার Kubernetes ক্লাস্টার প্রস্তুত এবং চলমান। আপনি মিনikube, k3s, বা অন্য কোন ক্লাউড ভিত্তিক Kubernetes পরিষেবা (যেমন Google Kubernetes Engine, Amazon EKS) ব্যবহার করতে পারেন।

২. Docker Image তৈরি করা

Docker Image তৈরি করতে, আপনার একটি Dockerfile এবং প্রয়োজনীয় ফাইল (যেমন requirements.txt, app.py) থাকতে হবে। আগের উত্তরে আলোচনা করা Dockerfile উদাহরণটি ব্যবহার করুন।

Docker Image তৈরি করুন

docker build -t myusername/my-app:latest .

৩. Docker Image Kubernetes Registry তে আপলোড করা

Kubernetes ক্লাস্টারে ডিপ্লয় করার আগে, আপনাকে Docker Image টি একটি রেজিস্ট্রিতে আপলোড করতে হবে (যেমন Docker Hub):

docker push myusername/my-app:latest

৪. Kubernetes Deployment ফাইল তৈরি করা

Kubernetes এ ডিপ্লয়মেন্ট করতে একটি YAML ফাইল তৈরি করুন। উদাহরণস্বরূপ, deployment.yaml নামক একটি ফাইল তৈরি করুন:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  replicas: 3  # সার্ভিসের কন্টেইনারের সংখ্যা
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: myusername/my-app:latest
        ports:
        - containerPort: 5000  # আপনার অ্যাপ্লিকেশনের পোর্ট

৫. Deployment চালানো

Kubernetes CLI (kubectl) ব্যবহার করে ডিপ্লয়মেন্টটি তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:

kubectl apply -f deployment.yaml

৬. সার্ভিস তৈরি করা

আপনার কন্টেইনার অ্যাপ্লিকেশনটি ক্লাস্টারের বাইরের ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য করার জন্য একটি সার্ভিস তৈরি করুন। একটি নতুন YAML ফাইল তৈরি করুন, উদাহরণস্বরূপ, service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  type: LoadBalancer  # অথবা NodePort, ClusterIP
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80  # ক্লাস্টারের মধ্যে ব্যবহৃত পোর্ট
      targetPort: 5000  # কন্টেইনারের পোর্ট

৭. সার্ভিস চালানো

সার্ভিসটি তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:

kubectl apply -f service.yaml

৮. ডিপ্লয়মেন্ট এবং সার্ভিস যাচাই করা

ডিপ্লয়মেন্ট এবং সার্ভিস যাচাই করতে নিচের কমান্ডগুলি ব্যবহার করুন:

kubectl get deployments
kubectl get services

৯. অ্যাপ্লিকেশন অ্যাক্সেস করা

আপনার সার্ভিসের IP বা DNS নামের মাধ্যমে আপনার অ্যাপ্লিকেশনটি ব্রাউজারে খুলুন। যদি আপনি LoadBalancer টাইপ ব্যবহার করে থাকেন, তবে এটি একটি পাবলিক IP প্রদান করবে। NodePort ব্যবহার করলে, আপনি ক্লাস্টারের নোডের IP এবং নির্দিষ্ট পোর্ট ব্যবহার করে অ্যাক্সেস করতে পারবেন।

সারসংক্ষেপ

এই প্রক্রিয়ার মাধ্যমে আপনি Kubernetes ক্লাস্টারে Docker কন্টেইনার সফলভাবে ডিপ্লয় করেছেন। Kubernetes আপনাকে ডিপ্লয়মেন্ট, স্কেলিং, এবং স্বয়ংক্রিয় পুনরুদ্ধারের সুবিধা প্রদান করে, যা আপনার কন্টেইনারাইজড অ্যাপ্লিকেশনগুলি পরিচালনা করতে সহায়তা করে।

Content added By
Promotion